/**
 * controller
 * @return
 */
module.exports = Controller("Home/BaseController", function () {
    "use strict";
    return {
        _404Action: function () {
            this.status(404); //发送404状态码
            this.end('not found');
        },
        indexAction: function () {
            //render View/Home/article_edit.html file
            var aa = "dfsdfsd";
            this.action('home/index/home');
        },
        homeAction: function () {
            this.assign('active', 'home');//当前高亮初始值
            this.display();
        },
        blogAction: function () {//博客主页列表
            var self = this;
            var data = D('article').page(this.get('page'), 10).field('gid,title,username,date,catename,thumpath,excerpt')
                .join({
                    table: 'user',
                    join: 'left', //join方式，有 left, right, inner 3种方式
                    as: 'u', //表别名
                    on: ['author', 'uid'] //ON条件
                }).join({
                    table: 'category',
                    join: 'left', //join方式，有 left, right, inner 3种方式
                    as: 'c', //表别名
                    on: ['cateid', 'cid'] //ON条件
                }).join({
                    table: 'attachment',
                    join: 'left', //join方式，有 left, right, inner 3种方式
                    as: 'a', //表别名
                    on: ['attnum', 'aid'] //ON条件
                }).order('date desc').countSelect().then(function (data) {
                    console.log(data)
                    self.assign('pagerData', data); //这里assign的变量必须为pagerData，分页展示使用
                    self.assign('list', data.data);

                    //self.display();
                })

            var cat = D('category').where({pid: 0}).select().then(function (data) {
                //console.log()
                self.assign('cat', data);
            })

            self.assign('active', 'blog');//当前高亮初始值
            return Promise.all([data, cat]).then(function () {
                return self.display();
            })
        },
        catAction: function () {
            var self = this;
            var data = D('article').page(this.get('page'), 10).where({cateid: this.get('cid')}).field('gid,title,username,date,catename,thumpath,excerpt')
                .join({
                    table: 'user',
                    join: 'left', //join方式，有 left, right, inner 3种方式
                    as: 'u', //表别名
                    on: ['author', 'uid'] //ON条件
                }).join({
                    table: 'category',
                    join: 'left', //join方式，有 left, right, inner 3种方式
                    as: 'c', //表别名
                    on: ['cateid', 'cid'] //ON条件
                }).join({
                    table: 'attachment',
                    join: 'left', //join方式，有 left, right, inner 3种方式
                    as: 'a', //表别名
                    on: ['attnum', 'aid'] //ON条件
                }).order('date desc').countSelect().then(function (data) {
                    //console.log(data)
                    self.assign('pagerData', data); //这里assign的变量必须为pagerData，分页展示使用
                    self.assign('list', data.data);

                    //self.display();
                })

            var cat = D('category').where({pid: 0}).select().then(function (data) {
                self.assign('cat', data);
            })
            var catinfo = D('category').where({cid: this.get('cid')}).select().then(function (data) {
               // console.log(data)
                self.assign({
                    catname: data[0].catename,
                    catinfo: data[0].description,
                    ename: data[0].enname,
                    icon: data[0].icon
                })
            })
            this.assign('cid', this.get('cid'));
            this.assign('active', 'blog', 'catinfo');//当前高亮初始值
            return Promise.all([data, cat]).then(function () {
                return self.display();
            })

        },
        pAction: function () {
            var self = this;
            var gid = this.get('gid');
            //记录浏览量
            D('article').where({gid:gid}).updateInc('views').then(function(){});
            //获取分类列表
            var cat = D('category').where({pid: 0}).select().then(function (data) {
                self.assign('cat', data);
            })
            //获取当前文章信息
            var content = D('article')
                .where({gid: gid})
                .field('gid,title,username,date,catename,catename,cid,content,views')
                .join({
                    table: 'category',
                    join: 'left', //join方式，有 left, right, inner 3种方式
                    as: 'c', //表别名
                    on: ['cateid', 'cid'] //ON条件
                }).join({
                    table: 'user',
                    join: 'left', //join方式，有 left, right, inner 3种方式
                    as: 'u', //表别名
                    on: ['author', 'uid'] //ON条件
                }).find().then(function (data) {
                    //console.log(data);
                    self.assign({
                        cid: data.cid,
                        content: data
                    });

                })
                 //TODO
            //一级导航当前高亮
            this.assign('active', 'blog')
            return Promise.all([cat, content]).then(function () {
                self.display();
            })

        }
    };
});